// import { constantRoutes,asyncRoutes } from '@/router'
// import { getMenu } from '@/api/user'
// import Layout from '@/layout'
// import { lazyLoadingCop } from '@/utils/lazyLoading'
//
// const state = {
//   routes: [],
//   addRoutes: []
// }
//
// const mutations = {
//   SET_ROUTES: (state, routes) => {
//     state.addRoutes = routes
//     state.routes = constantRoutes.concat(routes)
//   }
// }
//
// const actions = {
//   generateRoutes({ commit }) {
//     return new Promise(resolve => {
//       let accessedRoutes = []
//       // 动态获取菜单
//       getMenu().then(res => {
//         if (res.status === '200') {
//           if (res.data) {
//             accessedRoutes = formatRoutes(res.data)
//             accessedRoutes = accessedRoutes.concat(asyncRoutes)
//             commit('SET_ROUTES', accessedRoutes)
//             resolve(accessedRoutes)
//           }
//         }
//       })
//     })
//   }
// }
//
// // 格式化菜单
// export const formatRoutes = (aMenu) => {
//   const aRouter = []
//   aMenu.forEach(oMenu => {
//     const {
//       path,
//       component,
//       name,
//       icon,
//       permissionCode,
//       redirect,
//       booleanHidden,
//       booleanAlwaysShow,
//       booleanNoCache,
//       booleanBreadcrumb,
//       children,
//       title
//     } = oMenu
//     if (component) {
//       let syncModule = null
//       if (component === 'Layout') {
//         syncModule = Layout
//       } else {
//         syncModule = lazyLoadingCop(component)
//       }
//       // 是否隐藏
//       const oRouter = {
//         path: path,
//         component: syncModule,
//         name: name,
//         hidden: booleanHidden,
//         redirect: redirect,
//         alwaysShow: booleanAlwaysShow,
//         meta: {
//           icon: icon,
//           title: title,
//           noCache: booleanNoCache,
//           breadcrumb: booleanBreadcrumb,
//           role: [permissionCode]
//         },
//         icon: icon,
//         children: !children ? [] : formatRoutes(children)
//       }
//       aRouter.push(oRouter)
//     }
//   })
//   return aRouter
// }
//
// export default {
//   namespaced: true,
//   state,
//   mutations,
//   actions
// }
